/*
JavaScript的对象用于描述现实世界中的某个对象。例如，为了描述“小明”这个淘气的小朋友，我们可以用若干键值对（就是属性）来描述他：


*/
//  一、声明一个对象，并赋值 ,属性名尽量使用标准的变量名方便访问

var hwc =
{   Stucode:'2044010213',
    heName:'黄文聪',
    birth:2002,
    school:'闽大',
    height:180,
    'hobbies-interests':'跑步'//有特殊符号的属性名要用''包起来，访问时也不能通过 对象.属性名 直接访问，要用 对象['xxx'] 来访问

}
//    二、访问这个对象的属性

/*
有特殊符号的属性名要用''包起来，访问时也不能通过 对象.属性名 直接访问，要用 对象['xxx'] 来访问
也可以用xiaohong['name']来访问xiaohong的name属性，不过xiaohong.name的写法更简洁。我们在编写JavaScript代码
的时候，属性名尽量使用标准的变量名，这样就可以直接通过object.prop的形式访问一个属性了。
*/
console.log(hwc.birth);
console.log(hwc["birth"]);
console.log(hwc["hobbies-interests"]);
//访问不存在的属性不报错，而是返回undefined：
console.log(hwc.nonentity);

//可以随意增加、删除一个对象的属性，就连删除该对象不存在的属性也不例外（删除用 delete ）
hwc.motto='做了再说，错了再改';//增加
console.log(hwc.motto);//输出
delete hwc.birth;//删除
console.log(hwc.birth);//输出




//检测某一个对象是否拥有某一属性，可以用in操作符

/*
不过要小心，如果in判断一个属性存在，
这个属性不一定是xiaoming的，它可能是xiaoming继承得到的：
*/
/* 
        'toString' in xiaoming; //turn
// 输出true,因为toString定义在object对象中，而所有对象最终都会在原型链上指向object，所以xiaoming也拥有toString属性。

//要判断一个属性是否是xiaoming自身拥有的，而不是继承得到的，可以用hasOwnProperty()方法：
        hwc.hasOwnProperty('motto')//turn
        hwc.hasOwnProperty('toString')//false


*/



